import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class func1 { //o(nlogn)
//    public int[] twoSum(int[] nums, int target) {
//        Map<Integer,Integer> map = new HashMap<>();
//        map.put(nums[0],0);
//        for (int i = 1;i < nums.length;i++) {
//            int temp = target - nums[i];
//            if (map.containsKey(temp)) {
//                return new int[] {i, map.get(temp)};
//            }
//            map.put(nums[i],i);
//        }
//        return null;
//    }
//    public int[] twoSum(int[] nums, int target) {
//        int[] result = new int[2];
//        for (int i = 0;i < nums.length;i++) {
//            for (int j = i + 1;j < nums.length;j++) {
//                if (nums[i] + nums[j] == target) {
//                    result[0] = nums[i];
//                    result[1] = nums[j];
//                    return result;
//                }
//            }
//        }
//        return null;
//    }
    public static int[] twoSum(int[] nums, int target) {
        int count = 0;
        int[] result = new int[2];
        int[] aa = new int[2];
        int end = nums.length - 1;
        int[] temp = new int[nums.length];
        for (int i = 0;i < nums.length;i++) {
            temp[i] = nums[i];
        }
        Arrays.sort(temp);
        int begin = 0;
        while (begin < end) {
            if (temp[begin] + temp[end] == target) {
                result[0] = begin;
                result[1] = end;
                break;
            }
            if (temp[begin] + temp[end] > target) {
                end--;
            }
            if (temp[begin] + temp[end] < target) {
                begin++;
            }
        }
        int i,j;
        for (i = 0;i < nums.length;i++) {
            if (nums[i] == temp[result[0]]){
                aa[count] = i;
                count++;
                break;
            }
        }
        for (j = 0;j < nums.length;j++) {
            if (j == i) {
                continue;
            }
            if (nums[j] == temp[result[1]]){
                aa[count] = j;
                break;
            }

        }
        if (i > j) {
            int tep = aa[0];
            aa[0] = aa[1];
            aa[1] = tep;
        }
        return aa;
    }


    public static void main(String[] args) {
        int[] a = {-1,-2,-3,-4,-5};



    }

}
